namespace SV_FMT_STR_SCAN_IMPROP_LENGTH {
﻿void foo(FILE* f, char* pc, int i, long l, struct SomeStruct ss, long double ld) {
	fscanf(f, "%2hs", pc);     // improper use of 'h' modifier
	fscanf(f, "%lc", &i);
	fscanf(f, "%10ld", &l);
	fscanf(f, "%hx", &i);
	fscanf(f, "%hc", pc);      // 'h' modifier used with 'c' type character
	fscanf(f, "%Lx", &l);      // 'L' modifier used with 'x' type character
	fscanf(f, "%Lf", &ld);
}

void foo(FILE* f, char* pc, int i, long l, struct SomeStruct ss, long double ld) {
	fscanf(f, "%s", pc);
	fscanf(f, "%lc", &i);
	fscanf(f, "%10ld", &l);
	fscanf(f, "%hx", &i);
	fscanf(f, "%c", pc);
	fscanf(f, "%x", &l);
	fscanf(f, "%Lf", &ld);
}
}}